home *** CD-ROM | disk | FTP | other *** search
/ Delphi Developer's Kit 1996 / Delphi Developer's Kit 1996.iso / power / dirvcl / tstdirec.pas < prev    next >
Pascal/Delphi Source File  |  1995-12-22  |  9KB  |  334 lines

  1. unit Tstdirec;
  2.  
  3. interface
  4.  
  5. uses
  6.   Classes,
  7.   Forms,
  8.   Director,
  9.   StdCtrls,
  10.   Controls,
  11.   ExtCtrls,
  12.   TabNotBk,
  13.   FileCtrl;
  14.  
  15.  
  16. type
  17.     T_Selection = (FilesSelection, SearchDirSelection);
  18.   TForm1 = class(TForm)
  19.     LbxResults: TListBox;
  20.      BtnFind: TButton;
  21.      BtnQuit: TButton;
  22.      BtnCancel: TButton;
  23.     EdFileMask: TEdit;
  24.      TbNbSelections: TTabbedNotebook;
  25.     ChkbxWithSubDir: TCheckBox;
  26.     PnlInclusions: TPanel;
  27.     PnlExclusions: TPanel;
  28.     LblVersion: TLabel;
  29.     Chkbxfilehidden: TCheckBox;
  30.     Chkbxfilesystem: TCheckBox;
  31.     ChkbxfileVolume: TCheckBox;
  32.     Chkbxfileexcarchive: TCheckBox;
  33.     ChkbxfileExcNormal: TCheckBox;
  34.     Chkbxdirhidden: TCheckBox;
  35.     Chkbxdirsystem: TCheckBox;
  36.     Chkbxdirexcreadonly: TCheckBox;
  37.     Chkbxdirexcarchive: TCheckBox;
  38.     ChkbxdirexcNormal: TCheckBox;
  39.     Chkbxexcfilereadonly: TCheckBox;
  40.     Chkbxfiledirectory: TCheckBox;
  41.     ChkbxOnlyDir: TCheckBox;
  42.     DirectoryListBox1: TDirectoryListBox;
  43.     LblInitialDir: TLabel;
  44.     LblDirMask: TLabel;
  45.     EdDirMask: TEdit;
  46.     LblFileMask: TLabel;
  47.     LblSearch: TLabel;
  48.     LblCurrentDir: TLabel;
  49.     EdCurrentDir: TEdit;
  50.     Directory1: TDirectory;
  51.      procedure BtnFindClick(Sender: TObject);
  52.      procedure BtnCancelClick(Sender: TObject);
  53.      procedure BtnQuitClick(Sender: TObject);
  54.      procedure CHkbxSubDirOnlyClick(Sender: TObject);
  55.      procedure FormCreate(Sender: TObject);
  56.      procedure EdFileMaskExit(Sender: TObject);
  57.     procedure Directory1Found(Sender: TObject);
  58.     procedure Directory1SearchStatus(Sender: TObject);
  59.     procedure FormResize(Sender: TObject);
  60.     procedure ChkbxWithSubDirClick(Sender: TObject);
  61.     procedure ChkbxexcfilereadonlyClick(Sender: TObject);
  62.     procedure ChkbxfilehiddenClick(Sender: TObject);
  63.     procedure ChkbxfilesystemClick(Sender: TObject);
  64.     procedure ChkbxfileVolumeClick(Sender: TObject);
  65.     procedure ChkbxfiledirectoryClick(Sender: TObject);
  66.     procedure chkbxfileExcReadOnlyClick(Sender: TObject);
  67.     procedure ChkbxfileexcarchiveClick(Sender: TObject);
  68.     procedure ChkbxfileExcNormalClick(Sender: TObject);
  69.     procedure chkbxdirreadonlyClick(Sender: TObject);
  70.     procedure ChkbxdirhiddenClick(Sender: TObject);
  71.     procedure ChkbxdirsystemClick(Sender: TObject);
  72.     procedure ChkbxdirexcreadonlyClick(Sender: TObject);
  73.     procedure chkbxdirexchiddenClick(Sender: TObject);
  74.     procedure chkbxdirexcsystemClick(Sender: TObject);
  75.     procedure ChkbxdirexcarchiveClick(Sender: TObject);
  76.     procedure ChkbxdirexcNormalClick(Sender: TObject);
  77.     procedure ChkbxOnlyDirClick(Sender: TObject);
  78.     procedure DirectoryListBox1Change(Sender: TObject);
  79.     procedure EdDirMaskExit(Sender: TObject);
  80.   private
  81.      { Private-declarations }
  82.   public
  83.      { Public-declarations }
  84.   end;
  85.  
  86. var
  87.   Form1: TForm1;
  88.  
  89. implementation
  90.  
  91. {$R *.DFM}
  92. {$R *.res}
  93.  
  94.     uses
  95.        WinProcs;
  96.  
  97.  
  98.     procedure TForm1.BtnFindClick(Sender: TObject);
  99.     begin
  100.         LbxResults.clear;
  101.       BtnFind.Enabled:=False;
  102.       BtnCancel.Enabled:=True;
  103.       ActiveControl := BtnCancel;
  104.       EdCurrentDir.Text:=Directory1.Initialdir;
  105.       TbNbSelections.enabled := false;
  106.       ChkbxWithSubDir.enabled := false;
  107.       ChkbxOnlyDir.enabled := false;
  108.       DirectoryListBox1.enabled := false;
  109.       EdFileMask.enabled := false;
  110.       EdDirMask.enabled := false;
  111.         Directory1.Execute;
  112.     end;
  113.  
  114.     procedure TForm1.Directory1Found(Sender: TObject);
  115.     begin
  116.         LbxResults.Items.Add(Directory1.SelectedFileName);
  117.       IF EdCurrentDir.Text <> Directory1.DirectoryInTreatment THEN
  118.           EdCurrentDir.Text:= Directory1.DirectoryInTreatment;
  119.     end;
  120.  
  121.     procedure TForm1.BtnCancelClick(Sender: TObject);
  122.     begin
  123.         Directory1.DoStop;
  124.     end;
  125.  
  126.     procedure TForm1.Directory1SearchStatus(Sender: TObject);
  127.  
  128.     begin
  129.         IF Directory1.Stopped THEN
  130.         BEGIN
  131.             BtnFind.Enabled := TRUE;
  132.             ActiveControl := BtnFind;
  133.          TbNbSelections.enabled := true;
  134.          ChkbxWithSubDir.enabled := true;
  135.          ChkbxOnlyDir.enabled := true;
  136.          DirectoryListBox1.enabled := true;
  137.          EdFileMask.enabled := true;
  138.          EdDirMask.enabled := true;
  139.             BtnCancel.Enabled := FALSE;
  140.         END;
  141.      end;
  142.  
  143.     procedure TForm1.BtnQuitClick(Sender: TObject);
  144.     begin
  145.         PostquitMessage(0);
  146.     end;
  147.  
  148.     procedure TForm1.CHkbxSubDirOnlyClick(Sender: TObject);
  149.     begin
  150.          Directory1.InSubDirectories:=ChkBxWithSubDir.checked
  151.     end;
  152.  
  153.    procedure TForm1.ChkbxOnlyDirClick(Sender: TObject);
  154.    begin
  155.        try
  156.             Directory1.OnlyDirectories := (Sender AS TCheckbox).Checked;
  157.       except
  158.           (Sender As TCheckbox).Checked := false;
  159.             Raise;
  160.       END;
  161.    end;
  162.  
  163.     procedure TForm1.FormCreate(Sender: TObject);
  164.     begin
  165.       LblVersion.caption := 'Version '+Directory1.Version;
  166.         WITH Directory1 DO
  167.         begin
  168.             EdFileMask.Text:=Directory1.FileFilter;
  169.          EdDirMask.Text :=Directory1.DirectoryFilter;
  170.             TbNbSelections.PageIndex:=0;
  171.             chkbxfilehidden.checked := IncludeHiddenFiles;
  172.          chkbxfilesystem.checked := IncludeSystemFiles;
  173.          chkbxfileVolume.checked := IncludeVolumeId;
  174.          chkbxfiledirectory.checked := IncludeDirectoryFiles;
  175.          chkbxexcfilereadonly.checked := ExcludeReadOnlyFiles;
  176.          chkbxfileexcarchive.checked := ExcludeArchiveFiles;
  177.             ChkBxfileExcNormal.checked := ExcludeNormalFiles;
  178.          chkbxdirhidden.checked := IncludeHiddenDir;
  179.          chkbxdirsystem.checked := IncludeSystemDir;
  180.          chkbxdirexcreadonly.checked := ExcludeReadOnlyDir;
  181.          chkbxdirexcarchive.checked := ExcludeArchiveDir;
  182.          chkbxdirexcNormal.checked := ExcludeNormalDir;
  183.             ChkBxWithSubDir.Checked := InSubDirectories;
  184.          ChkbxOnlyDir.Checked := OnlyDirectories;
  185.          DirectoryListBox1.Directory := InitialDir;
  186.          EdCurrentDir.Text:=InitialDir;
  187.         end;
  188.      end;
  189.  
  190.     procedure TForm1.EdFileMaskExit(Sender: TObject);
  191.  
  192.     begin
  193.         try
  194.             Directory1.FileFilter:=EdFileMask.text;
  195.         except
  196.             EdFileMask.text:=Directory1.FileFilter;
  197.             Raise
  198.         end
  199.      end;
  200.  
  201. procedure TForm1.FormResize(Sender: TObject);
  202.  
  203. VAR
  204.     Indice : INTEGER;
  205.    Decalage : INTEGER;
  206. begin
  207.     IF Height < 500 THEN
  208.        Height:= 500;
  209.    IF Width < 567 THEN
  210.        Width:=567;
  211.     Indice := 0;
  212.    Decalage := Height-EdCurrentDir.Top-58;
  213.     FOR Indice := 0 TO ControlCount-1 DO
  214.        WITH Controls[Indice] AS TControl DO
  215.           Top := Top+ Decalage;
  216.    LbxResults.Top := 8;
  217.    LbxResults.Height:= TbNbSelections.top-16;
  218.    LbxResults.Width := Width - 28;
  219.    EdCurrentDir.Width := Width - 141;
  220. end;
  221.  
  222. procedure TForm1.ChkbxWithSubDirClick(Sender: TObject);
  223. begin
  224.     Directory1.InSubDirectories:=ChkBxWithSubDir.Checked;
  225. end;
  226.  
  227.  
  228. procedure TForm1.ChkbxexcfilereadonlyClick(Sender: TObject);
  229.  
  230. begin
  231.     Directory1.ExcludeReadOnlyFiles := (Sender AS TCheckBox).Checked;
  232. end;
  233.  
  234. procedure TForm1.ChkbxfilehiddenClick(Sender: TObject);
  235. begin
  236.     Directory1.IncludeHiddenFiles := (Sender AS TCheckBox).Checked;
  237. end;
  238.  
  239. procedure TForm1.ChkbxfilesystemClick(Sender: TObject);
  240. begin
  241.     Directory1.IncludeSystemFiles := (Sender AS TCheckBox).Checked;
  242. end;
  243.  
  244. procedure TForm1.ChkbxfileVolumeClick(Sender: TObject);
  245. begin
  246.     Directory1.IncludeVolumeId := (Sender AS TCheckBox).Checked;
  247. end;
  248.  
  249. procedure TForm1.ChkbxfiledirectoryClick(Sender: TObject);
  250. begin
  251.     TRY
  252.         Directory1.IncludeDirectoryFiles := (Sender AS TCheckBox).Checked;
  253.    Except
  254.         (Sender AS TCheckBox).Checked:=True;
  255.       Raise;
  256.    END;
  257. end;
  258.  
  259. procedure TForm1.chkbxfileExcReadOnlyClick(Sender: TObject);
  260. begin
  261.     Directory1.ExcludeReadOnlyFiles := (Sender AS TCheckBox).Checked;
  262. end;
  263.  
  264. procedure TForm1.ChkbxfileExcNormalClick(Sender: TObject);
  265. begin
  266.       Directory1.ExcludeNormalFiles:=ChkBxfileExcNormal.checked
  267. end;
  268.  
  269. procedure TForm1.ChkbxfileexcarchiveClick(Sender: TObject);
  270. begin
  271.     Directory1.ExcludeArchiveFiles := (Sender AS TCheckBox).Checked;
  272. end;
  273.  
  274. procedure TForm1.chkbxdirreadonlyClick(Sender: TObject);
  275.  
  276. begin
  277.     Directory1.ExcludeReadOnlyDir := (Sender AS TCheckBox).Checked;
  278. end;
  279.  
  280. procedure TForm1.ChkbxdirhiddenClick(Sender: TObject);
  281. begin
  282.     Directory1.IncludeHiddenDir:=(Sender AS TCheckBox).Checked;
  283. end;
  284.  
  285. procedure TForm1.ChkbxdirsystemClick(Sender: TObject);
  286. begin
  287.     Directory1.IncludeSystemDir := (Sender AS TCheckBox).Checked;
  288. end;
  289.  
  290. procedure TForm1.ChkbxdirexcreadonlyClick(Sender: TObject);
  291. begin
  292.     Directory1.ExcludeReadOnlyDir := (Sender AS TCheckBox).Checked;
  293. end;
  294.  
  295. procedure TForm1.chkbxdirexchiddenClick(Sender: TObject);
  296. begin
  297.     Directory1.IncludeHiddenDir := (Sender AS TCheckBox).Checked;
  298. end;
  299.  
  300. procedure TForm1.chkbxdirexcsystemClick(Sender: TObject);
  301. begin
  302.     Directory1.IncludeSystemDir := (Sender AS TCheckBox).Checked;
  303. end;
  304.  
  305. procedure TForm1.ChkbxdirexcarchiveClick(Sender: TObject);
  306. begin
  307.     Directory1.ExcludeArchiveDir := (Sender AS TCheckBox).Checked;
  308. end;
  309.  
  310. procedure TForm1.ChkbxdirexcNormalClick(Sender: TObject);
  311.  
  312. begin
  313.       Directory1.ExcludeNormalDir := (Sender AS TCheckBox).Checked;;
  314. end;
  315.  
  316. procedure TForm1.DirectoryListBox1Change(Sender: TObject);
  317. begin
  318.     Directory1.InitialDir := DirectoryListBox1.Directory;
  319.     EdCurrentDir.Text:=Directory1.Initialdir;
  320. end;
  321.  
  322.     procedure TForm1.EdDirMaskExit(Sender: TObject);
  323.  
  324.     begin
  325.         try
  326.             Directory1.DirectoryFilter:=EdDirMask.text;
  327.         except
  328.             EdDirMask.text:=Directory1.DirectoryFilter;
  329.             Raise
  330.         end
  331.      end;
  332.  
  333. end.
  334.